linux下源码编译安装mysql

您所在的位置:网站首页 yum 安装包位置 linux下源码编译安装mysql

linux下源码编译安装mysql

2023-03-20 15:12| 来源: 网络整理| 查看: 265

安装需求

安装需求

具体配置

安装目录(basedir)

/mysql_3307

数据目录(datadir)

/mysql_3307/data

端口号

3307

socket文件位置

$basedir/mysql.sock

字符集

utf8mb4

了解配置选项

常用配置选项

配置选项

描述

默认值

建议值

CMAKE_INSTALL_PREFIX

安装基目录(basedir)

/usr/local/mysql

根据需求

MYSQL_DATADIR

数据目录(datadir)

$basedir/data

根据需求

SYSCONFDIR

默认配置文件my.cnf路径

/etc

MYSQL_TCP_PORT

TCP/IP端口

3306

非默认端口

MYSQL_UNIX_ADDR

套接字socket文件路径

/tmp/mysql.sock

$basedir/

DEFAULT_CHARSET

默认字符集

latin1

utf8mb4

DEFAULT_COLLATION

默认校验规则

latin1_swedish_ci

utf8mb4_general_ci

WITH_EXTRA_CHARSETS

扩展字符集

all

all

ENABLED_LOCAL_INFILE

是否启用本地加载外部数据文件功能

OFF

建议开启

WITH_SSL

SSL支持类型

system

建议显式指定

WITH_BOOST

Boost库源代码的位置

Boost库是构建MySQL所必需的,建议事先下载

存储引擎相关配置项

说明:

以下选项值均为布尔值,0或1;0代表不编译到服务器中,1代表编译,建议都静态编译到服务器中。

其他的存储引擎可以根据实际需求在安装时通过WITH_xxxx_STORAGE_ENGINE=1的方式编译到服务器中。

配置选项

描述

WITH_INNOBASE_STORAGE_ENGINE

将InnoDB存储引擎插件构建为静态模块编译到服务器中;建议编译到服务器中

WITH_PARTITION_STORAGE_ENGINE

是否支持分区

WITH_FEDERATED_STORAGE_ENGINE

本地数据库是否可以访问远程mysql数据

WITH_BLACKHOLE_STORAGE_ENGINE

黑洞存储引擎,接收数据,但不存储,直接丢弃

WITH_MYISAM_STORAGE_ENGINE

将MYISAM存储引擎静态编译到服务器中

MySQL的源码编译安装

第一步:安装MySQL编译需要用到的依赖库

# yum -y install ncurses-devel cmake libaio-devel openssl-devel

第二步:上传软件到服务器端并解压

# tar -xf mysql-boost-5.7.31.tar.gz# cd mysql-5.7.31

第三步:配置(基于cmake进行配置)

# vim myconfig.shcmake . \-DCMAKE_INSTALL_PREFIX=/mysql_3307 \-DMYSQL_DATADIR=/mysql_3307/data \-DMYSQL_TCP_PORT=3307 \-DMYSQL_UNIX_ADDR=/mysql_3307/mysql.sock \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DEXTRA_CHARSETS=all \-DDEFAULT_CHARSET=utf8mb4 \-DDEFAULT_COLLATION=utf8mb4_general_ci \-DWITH_SSL=system \-DWITH_BOOST=boost# chmod +x myconfig.sh# ./myconfig.sh

选项说明:-DCMAKE_INSTALL_PREFIX :安装路径-DMYSQL_DATADIR :数据目录-DMYSQL_TCP_PORT :端口号-DMYSQL_UNIX_ADDR :套接字文件位置

第四步:编译安装

# make -j4 && make install选项说明:-j4 :代表同时开启多个线程共同实现编译操作编译报错常见问题解析

问题1:没有boost导致安装失败

linux下源码编译安装mysql-5.7.31_服务器

问题2:编译安装中途报错

linux下源码编译安装mysql-5.7.31_sed_02

解决方案:只能重新编译一下

# rm -f CMakeCache.txt# make -j4 && make install

补充:我中途遇到了编译中途报错的情况,虚拟机关机,把内存调到4096MB(即4GB),然后开机再次执行make -j4 && make install 命令就可以了。注:其实不必删除CMakeCache.txt文件,删除了该文件还要重头再来,而直接执行编译安装命令,会继续上次出错的地方。

MySQL数据库的初始化

注意:进入到安装目录里/mysql_3307

# cd /mysql_3307

第一步:创建mysql-files目录

创建系统变量`secure_file_priv`限制导入导出目录并修改权限# mkdir mysql-files# chown -R mysql:mysql /mysql_3307# chmod 750 mysql-files

第二步:数据库初始化操作

# bin/mysqld --initialize --user=mysql --basedir=/mysql_3307 --datadir=/mysql_3307/data...2020-08-24T11:07:37.621346Z 1 [Note] A temporary password is generated for root@localhost: O6.iHqrZgzz7

第三步:拷贝mysql.server脚本到/etc/init.d目录,然后启动数据库

# cp support-files/mysql.server /etc/init.d/mysql_3307# service mysql_3307 start

启动异常的解决方案:

linux下源码编译安装mysql-5.7.31_服务器_03

查看mysql.itcast.cn.err这个错误日志(注:你电脑里的日志文件名可能不一样,它是格式是 主机名.err,如果你的主机名是study1,那么这个文件名为study1.err)

linux下源码编译安装mysql-5.7.31_sed_04

出现以上问题的主要原因在于mysql这个用户对/mysql_3307目录没有写入文件的权限,写入mysql_socket套接字文件。

解决方案:

# chown -R mysql.mysql /mysql_3307MySQL源码编译安装后的后续配置

第一步:编写MySQL配置文件,my.cnf

# vim /mysql_3307/my.cnf[mysqld]basedir=/mysql_3307datadir=/mysql_3307/datasocket=/mysql_3307/mysql.sock

# service mysql_3307 restart

第二步:设置管理员的密码

# bin/mysqladmin -uroot password '123' -pEnter password:O6.iHqrZgzz7

第三步:安全设置

# bin/mysql_secure_installation

第四步:添加mysql_3307到开机启动项

# chkconfig --add mysql_3307# chkconfig mysql_3307 on



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3